﻿using System;
using System.Diagnostics;
using System.Windows.Forms;

namespace Listener_SMS
{
    static class Program
    {
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main(string[] args)
        {

            ////保证同时只有一个客户端在运行 
            //System.Threading.Mutex mutexMyapplication = new System.Threading.Mutex(false, AppDomain.CurrentDomain.FriendlyName);
            //if (!mutexMyapplication.WaitOne(100, false))
            //{
            //    MessageBox.Show("程序" + Application.ProductName + "已经运行！", Application.ProductName,
            //        MessageBoxButtons.OK, MessageBoxIcon.Error);
            //    return;
            //}
            //else
            //{
            //    Application.EnableVisualStyles();
            //    Application.SetCompatibleTextRenderingDefault(false);

            //    /**
            //     * 当前用户是管理员的时候，直接启动应用程序
            //     * 如果不是管理员，则使用启动对象启动程序，以确保使用管理员身份运行
            //     */
            //    //获得当前登录的Windows用户标示
            //    System.Security.Principal.WindowsIdentity identity = System.Security.Principal.WindowsIdentity.GetCurrent();
            //    System.Security.Principal.WindowsPrincipal principal = new System.Security.Principal.WindowsPrincipal(identity);
            //    //判断当前登录用户是否为管理员
            //    if (principal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator))
            //    {
            //        bool chkSuccess = AutoUpdateUtil.Auto(args);
            //        if (!chkSuccess)
            //        {
            //            MessageBox.Show("检查更新配置失败");
            //            return;
            //        }
            //        //如果是管理员，则直接运行
            //        Application.Run(new Main());
            //    }
            //    else
            //    {
            //        //创建启动对象
            //        ProcessStartInfo startInfo = new ProcessStartInfo();
            //        startInfo.UseShellExecute = true;
            //        startInfo.WorkingDirectory = Environment.CurrentDirectory;
            //        startInfo.FileName = Application.ExecutablePath;
            //        //设置启动动作,确保以管理员身份运行
            //        startInfo.Verb = "runas";
            //        try
            //        {
            //            System.Diagnostics.Process.Start(startInfo);
            //        }
            //        catch
            //        {
            //            return;
            //        }
            //        //退出
            //        Application.Exit();
            //    }
            //}

            ////获得当前登录的Windows用户标示
            System.Security.Principal.WindowsIdentity identity = System.Security.Principal.WindowsIdentity.GetCurrent();
            System.Security.Principal.WindowsPrincipal principal = new System.Security.Principal.WindowsPrincipal(identity);
            Application.Run(new Main());
        }
    }
}
